{{!
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: BUSL-1.1
~}}

<PageHeader as |p|>
  <p.top>
    <Page::Breadcrumbs @breadcrumbs={{@breadcrumbs}} />
  </p.top>
  <p.levelLeft>
    <h1 class="title is-3" data-test-page-title>
      {{this.title}}
    </h1>
  </p.levelLeft>
</PageHeader>

{{#if @config.id}}
  <Toolbar />
{{else}}
  <div class="box is-bottomless is-fullwidth is-marginless">
    <div class="columns">
      {{#each this.configTypes as |option|}}
        <div class="column is-flex">
          <label for={{option.key}} class="box-label is-column {{if (eq @config.actionType option.key) 'is-selected'}}">
            <div>
              <h3 class="box-label-header title is-6">
                <Icon @size="24" @name={{option.icon}} />
                {{option.label}}
              </h3>
              <p class="help has-text-grey-dark">
                {{option.description}}
              </p>
            </div>
            <div>
              <RadioButton
                id={{option.key}}
                name="pki-config-type"
                @value={{option.key}}
                @groupValue={{@config.actionType}}
                @onChange={{fn (mut @config.actionType) option.key}}
                data-test-pki-config-option={{option.key}}
              />
              <label for={{option.key}}></label>
            </div>
          </label>
        </div>
      {{/each}}
    </div>
  </div>
{{/if}}
{{#if (eq @config.actionType "import")}}
  <PkiImportPemBundle
    @model={{@config}}
    @onCancel={{@onCancel}}
    @onSave={{fn (mut this.title) "View imported items"}}
    @onComplete={{transition-to "vault.cluster.secrets.backend.pki.overview"}}
    @adapterOptions={{hash actionType=@config.actionType useIssuer=@config.canImportBundle}}
  />
{{else if (eq @config.actionType "generate-root")}}
  {{#if @config.privateKey}}
    <div class="has-top-margin-m">
      <Hds::Alert data-test-config-next-steps @type="inline" @color="highlight" class="has-bottom-margin-s" as |A|>
        <A.Title>Next steps</A.Title>
        <A.Description>
          The
          <code>private_key</code>
          is only available once. Make sure you copy and save it now.
        </A.Description>
      </Hds::Alert>
    </div>
  {{/if}}
  <PkiGenerateRoot
    @model={{@config}}
    @urls={{@urls}}
    @onCancel={{@onCancel}}
    @adapterOptions={{hash actionType=@config.actionType useIssuer=@config.canGenerateIssuerRoot}}
    @onSave={{fn (mut this.title) "View Root Certificate"}}
    @onComplete={{transition-to "vault.cluster.secrets.backend.pki.overview"}}
  />
{{else if (eq @config.actionType "generate-csr")}}
  <PkiGenerateCsr
    @model={{@config}}
    @onCancel={{@onCancel}}
    @onSave={{fn (mut this.title) "View Generated CSR"}}
    @onComplete={{transition-to "vault.cluster.secrets.backend.pki.overview"}}
  />
{{else}}
  <EmptyState @title="Choose an option" @message="To see configuration options, choose your desired output above." />
  <hr class="has-background-gray-100" />
  <Hds::ButtonSet>
    <Hds::Button @text="Done" disabled={{true}} data-test-save />
    <Hds::Button @text="Cancel" @color="secondary" {{on "click" @onCancel}} data-test-cancel />
  </Hds::ButtonSet>
{{/if}}